home *** CD-ROM | disk | FTP | other *** search
/ Saar AMOK 2 / Saar AMOK II - Oktober 1994 (1994)(Kreativ Marketing)(DE)[!][I-7598].iso / tools / muchmore / wbinfo / wbinfo.mod < prev    next >
Text File  |  1994-06-19  |  2KB  |  84 lines

  1.  
  2. MODULE WBInfo;
  3.  
  4.   IMPORT
  5.     d  := Dos,
  6.     e  := Exec,
  7.     I  := Intuition,
  8.     ol := OberonLib,
  9.     wb := Workbench,
  10.     SYS:= SYSTEM;
  11.  
  12.  
  13.   CONST
  14.     version = "$VER: wbinfo 1.1 (12.5.94)";
  15.  
  16.   VAR
  17.     args    : STRUCT (dummy: d.ArgsStruct) name,pub: e.STRPTR; END;
  18.     lock    : d.FileLockPtr;
  19.     name    : e.STRING;
  20.     pub     : e.STRING;
  21.     path    : e.STRING;
  22.     fileptr : e.LSTRPTR;
  23.     scr     : I.ScreenPtr;
  24.     succ    : BOOLEAN;
  25.     rd      : d.RDArgsPtr;
  26.     pathptr : LONGINT;
  27.     index   : LONGINT;
  28.  
  29. BEGIN
  30.   IF version[0] = 0X THEN END;
  31.  
  32.   IF ol.wbStarted THEN HALT(0) END;
  33.  
  34.   IF (d.base.lib.version < 37) OR (wb.base=NIL) OR (wb.base.version < 39) THEN
  35.     IF d.Write(d.Output(),"Need AmigaOS 3.0 or better\n",27)=0 THEN END;
  36.     HALT(d.fail);
  37.   END;
  38.  
  39.  
  40.   rd := d.ReadArgs("NAME/A,U=PUBSCREEN/K",args,NIL);
  41.  
  42.   IF rd=NIL THEN
  43.     SYS.SETREG(0,d.PrintFault(d.IoErr(),NIL));
  44.     HALT(d.warn)
  45.   END;
  46.   IF args.name # NIL THEN COPY(args.name^,name) END;
  47.   IF args.pub  # NIL THEN COPY(args.pub^,pub)   END;
  48.  
  49.   d.FreeArgs(rd); rd := NIL;
  50.  
  51.   IF name # "" THEN
  52.  
  53.     fileptr := d.FilePart(name);
  54.   
  55.     COPY(name,path);
  56.     pathptr := d.PathPart(path);
  57.     index := pathptr-SYS.VAL(LONGINT,SYS.ADR(path));
  58.   
  59.     IF (index >= 0) & (index < SIZE(path)) THEN
  60.       path[index] := 0X;
  61.     END;
  62.   
  63.     lock := d.Lock(path,d.sharedLock);
  64.   
  65.     IF lock # NIL THEN
  66.  
  67.       IF pub="" THEN
  68.         scr := I.LockPubScreen(NIL)
  69.       ELSE
  70.         scr := I.LockPubScreen(pub);
  71.         IF scr=NIL THEN scr := I.LockPubScreen(NIL) END;
  72.       END;
  73.  
  74.       IF scr # NIL THEN
  75.         wb.WBInfo(lock,fileptr^,scr);
  76.         I.UnlockPubScreen(NIL,scr);
  77.       END;
  78.  
  79.       d.UnLock(lock);
  80.     END;
  81.   END;
  82. END WBInfo.
  83.  
  84.